package top.byteio.common.oauth2.properties;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.Duration;

/**
 * <p>
 * 缓存配置类
 * </p>
 *
 * @author yangkai.shen
 * @date Created in 2019/8/31 10:18
 */
@Getter
@Setter
public class CacheProperties {
    /**
     * 缓存类型
     */
    private final CacheType type = CacheType.DEFAULT;

    /**
     * 缓存前缀，目前只对redis缓存生效，默认 OAUTH:STATE:
     */
    private final String prefix = "OAUTH:STATE:";

    /**
     * 超时时长，目前只对redis缓存生效，默认3分钟
     */
    private final Duration timeout = Duration.ofMinutes(3);

    /**
     * 缓存类型
     */
    @Getter
    @ToString
    public enum CacheType {
        /**
         * 使用JustAuth内置的缓存
         */
        DEFAULT,
        /**
         * 使用Redis缓存
         */
        REDIS,
        /**
         * 自定义缓存
         */
        CUSTOM
    }
}
